package com.yjzx.care.base;

import java.util.function.Function;

/**
 * @author yjzx
 * @date 2024/11/11
 * @description 单属性获取与设置
 */
public interface ValueGetSet<T> extends ValueGet<T>{

    /**
     * 设置属性
     * @param value 属性value
     */
    void set(T value);

    /**
     * 设置属性
     * @param function 根据原属性，设置属性值
     */
    default void set(Function<? super T, ? extends T> function){
        this.set(function.apply(get()));
    }

}
